package com.wave.wavesystem.ai.factory;

import cn.hutool.json.JSONUtil;
import com.wave.wavesystem.serve.enums.post.PostStatusEnum;
import org.springframework.ai.chat.prompt.PromptTemplate;

import java.util.Map;

public class WavePromptFactory {

    /**
     * ai 审批帖子规则
     *
     * @param postId  帖子id
     * @param content 帖子内容
     * @return prompt
     */
    public static PromptTemplate postApprovalPrompt(String postId, String content) {
        String postStatusJson = JSONUtil.toJsonStr(PostStatusEnum.list());
        String temp = """
                你需要判断文章内容是否违反下面规制， 没有违反就通过审批，并且调用autoComment对帖子进行评论，
                违反了下面规制的话要指出违反哪几条规制，每条违反规则的后面附带上出帖子内容的违规内容，
                并且把违反内容作为参数 rejectReason传入审批功能中，并且根据情况调用【帖子审批通过功能】：
                1、【禁止】直接使用人身攻击词汇：如“蠢猪”“废物”“脑残”“贱人”等带侮辱性贬义词。
                2、【禁止】出现任何针对个人或群体的脏话、粗口、性暗示辱骂：例如“操××”“他妈的”“婊子养的”等。
                3、【禁止】煽动地域、种族、性别、宗教对立：如“某地人全是骗子”“××族就是低劣”“女人天生弱智”“信×教都有病”。
                4、【禁止】恶意挑拨群体矛盾：例如“打工仔就该仇视资本家”“穷人都嫉妒富人”“城里人都在剥削农民工”。
                5、【禁止】贬损、嘲讽特殊人群或弱势群体：如“残疾人活着浪费粮食”“抑郁症就是矫情”“艾滋病患者活该”。
                6、【禁止】传播仇恨口号或极端主义标语：例如“杀光××”“××不死天理难容”“所有××都该下地狱”。
                7、【禁止】捏造、夸大事实以制造恐慌或仇恨：如“××群体正在秘密策划灭绝国人”“某省已全面投毒”。
                8、【禁止】教唆暴力、违法或自残：例如“见到××就打，打死算我的”“不爽就砍，别忍”“教你无痕迹自杀”。
                9、【禁止】恶意关联、标签化攻击：如“所有支持××都是汉奸”“不转不是中国人”。
                10、【禁止】使用谐音、拼音、缩写、符号组合等方式变相实施以上行为：例如“SB”“NMSL”“F**k”“ㄘㄨˋ”等。
                 这是帖子的内容：{ content }
                """;
        String finalPrompt = new PromptTemplate(temp).create(
                        Map.of("postId", postId,
                                "content", content,
                                "postStatusList", postStatusJson))
                .getContents();
        return new PromptTemplate(finalPrompt);
    }

}
